package pe.gob.osce.sirenas.model.jpa.rectificaciones;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import pe.gob.osce.sirenas.model.jpa.Auditoria;
import pe.gob.osce.sirenas.model.jpa.FichaArbitral;


@Entity
@Table(name="AUD_REG_CAPACITACION", schema="RNAS" )
@SequenceGenerator(name = "sqId_Aud_Capacitacion", sequenceName = "RNAS.ID_AUD_CAPACITACION", allocationSize=1)
public class HistorialCapacitacion implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -732492673915774042L;
	public static final String NOMBRE_TABLA="CAPACITACION";

	@Id 
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sqId_Aud_Capacitacion")	
	@Column(name="N_ID_RECTIF_CAPACITACION")
	private Long idHistorial;	
	@Column(name="D_FEC_RECTIFICACION")
	private Date fecHistorial;
	@Column(name="N_ID_CAPACITACION")
	private Long idCapacitacion;	
	@Column(name="N_ID_FICHA")
	private Long idFicha;	
	@Column(name="N_IND_ESPECIALIDAD")
	private Integer indEspecialidad;	
	@Column(name="C_NOM_CAPACITACION")
	private String nomCapacitacion;	
	@Column(name="C_VAL_DURACION")
	private Long duracion;	
	@Column(name="C_NOM_INSTITUCION")
	private String nomInstitucion;		
	@Column(name="D_FEC_INICIO")
	private Date fecInicio;	
	@Column(name="D_FEC_FIN")
	private Date fecFin;	
	@Column(name="N_IND_ESTADO")
	private Long estado;
	@Column(name="C_COD_TRAMITE")
	private String codTramite;

	@Column(name="C_COD_REGISTRO")
	private String codRegistro;
	
	
	/**
	 * Metodo que permite obtener codRegistro.
	 * @return codRegistro , tipo String.
	 */
	public String getCodRegistro() {
		return codRegistro;
	}


	/**
	 * Permite actualizar codRegistro.
	 * @param codRegistro, tipo String.
	 */
	public void setCodRegistro(String codRegistro) {
		this.codRegistro = codRegistro;
	}

	
	@Embedded
	private Auditoria auditoria;
	
	
	@ManyToOne( cascade = { CascadeType.ALL } )
	@JoinColumn(name="N_ID_FICHA", insertable=false, updatable=false)
	private FichaArbitral fichaArbitral;
	


	

	public Long getIdHistorial() {
		return idHistorial;
	}
	public void setIdHistorial(Long idHistorial) {
		this.idHistorial = idHistorial;
	}
	public Date getFecHistorial() {
		return fecHistorial;
	}
	public void setFecHistorial(Date fecHistorial) {
		this.fecHistorial = fecHistorial;
	}
	public FichaArbitral getFichaArbitral() {
		return fichaArbitral;
	}
	public void setFichaArbitral(FichaArbitral fichaArbitral) {
		this.fichaArbitral = fichaArbitral;
	}
	public Long getIdCapacitacion() {
		return idCapacitacion;
	}
	public void setIdCapacitacion(Long idCapacitacion) {
		this.idCapacitacion = idCapacitacion;
	}
	public Long getIdFicha() {
		return idFicha;
	}
	public void setIdFicha(Long idFicha) {
		this.idFicha = idFicha;
	}
	public String getNomCapacitacion() {
		return nomCapacitacion;
	}
	public void setNomCapacitacion(String nomCapacitacion) {
		this.nomCapacitacion = nomCapacitacion;
	}
	public Date getFecInicio() {
		return fecInicio;
	}
	public void setFecInicio(Date fecInicio) {
		this.fecInicio = fecInicio;
	}
	public Date getFecFin() {
		return fecFin;
	}
	public void setFecFin(Date fecFin) {
		this.fecFin = fecFin;
	}
	public Long getDuracion() {
		return duracion;
	}
	public void setDuracion(Long duracion) {
		this.duracion = duracion;
	}
	public String getNomInstitucion() {
		return nomInstitucion;
	}
	public void setNomInstitucion(String nomInstitucion) {
		this.nomInstitucion = nomInstitucion;
	}
	
	public Long getEstado() {
		return estado;
	}
	public void setEstado(Long estado) {
		this.estado = estado;
	}
	public Auditoria getAuditoria() {
		return auditoria;
	}
	public void setAuditoria(Auditoria auditoria) {
		this.auditoria = auditoria;
	}
	public Integer getIndEspecialidad() {
		return indEspecialidad;
	}
	public void setIndEspecialidad(Integer indEspecialidad) {
		this.indEspecialidad = indEspecialidad;
	}
	public String getCodTramite() {
		return codTramite;
	}
	public void setCodTramite(String codTramite) {
		this.codTramite = codTramite;
	}

}
